package edu.northwestern.cbits.purple_robot_manager.models;
import java.util.Map;
import android.content.Context;
import android.net.Uri;
import edu.northwestern.cbits.purple_robot_manager.R;
import edu.northwestern.cbits.purple_robot_manager.logging.LogManager;
import edu.northwestern.cbits.purple_robot_manager.models.trees.TreeNode;
import edu.northwestern.cbits.purple_robot_manager.models.trees.TreeNode.TreeNodeException;
import edu.northwestern.cbits.purple_robot_manager.models.trees.parsers.MatLabBinaryTreeParser;
public class MatlabTreeModel extends TrainedModel
{
public static final String TYPE = "matlab-decision-tree";
private TreeNode _tree = null;
public MatlabTreeModel(Context context, Uri uri)
{
super(context, uri);
}
protected void generateModel(Context context, Object model) throws Exception
{
this._tree = MatLabBinaryTreeParser.parseString(model.toString());
}
protected Object evaluateModel(Context context, Map<String, Object> snapshot)
{
try
{
return this._tree.fetchPrediction(snapshot);
}
catch (TreeNodeException e)
{
LogManager.getInstance(context).logException(e);
}
return null;
}
public String modelType()
{
return MatlabTreeModel.TYPE;
}
public String summary(Context context)
{
return context.getString(R.string.summary_model_tree);
}
}